1. Field
The disclosure relates generally to application programming interfaces and more specifically to automatically generating bundles of application programming interfaces based on functional and non-functional properties associated with the application programming interfaces within an application programming interface database.
2. Description of the Related Art
An application programming interface (API) is a set of routines, protocols, and tools for building software applications. An application programming interface makes it easier to develop a software application by providing all the basic building blocks. A developer then puts the building blocks together to create the software application. In essence, an application's application program interface defines the proper way for the developer to request services from that application. Although application program interfaces are designed for developers, application program interfaces are good for application program interface consumers because the application program interfaces guarantee that all applications using a common application program interface will have similar interfaces. For Simple Object Access Protocol (SOAP) and Representational State Transfer (REST) services, an application program interface comes as a specification of remote calls exposed to the application program interface consumers.
Application programming interfaces may be used for accessing a Web-based software service or a Web tool. Using application program interfaces, applications are able to talk to each other without any user knowledge or intervention. For example, when a user buys movie tickets online and enters credit card information, the movie ticket Web site uses an application program interface to send the credit card information to a remote application that verifies whether the credit card information is correct. Once payment is confirmed, the remote application sends a response back to the movie ticket Web site indicating that the move ticket Web site may issue the tickets to the user. The user only sees the movie ticket Web site interface, but behind the scenes many applications are working together using application program interfaces to provide the service.
In addition, a developer may publish an application program interface on a social network of application program interface developers so that other developers can design software products that are based on the published application program interface. Publishing application program interfaces online allows application program interface developer communities to create an open architecture for sharing content and data between communities and applications. As a result, software service applications may be based on application program interfaces from multiple developers at all levels, such as, for example, at the application level, the platform level, the infrastructure level, et cetera.